/**
 * 使用中序遍历解决
 */
#include<iostream>
using namespace std;
typedef struct node
{
    char data[10];
    struct node *left,*right;
    
}BTree;

void toExpression(BTree* root){
    func(root,1);
}
void func(BTree *root,int deep){
    if(root==nullptr){//空节点返回
        return ;
    }else if(root->left==nullptr&&root->right==nullptr){//叶子节点
        cout<<root->data;
    }else{
        //只有deep大于1的时候加括号，也就是最外层加括号
        if(deep>1) printf("(");
        func(root->left,deep+1);
        cout<<root->data;
        func(root->right,deep+1);
        if(deep>1) cout<<")";
    }
}